Factor out the search shortcut, the recently used shortcut and the
authorEmmanuele Bassi <ebassi@gnome.org>
Wed, 6 Jun 2007 16:07:03 +0000 (16:07 +0000)
committerEmmanuele Bassi <ebassi@src.gnome.org>
Wed, 6 Jun 2007 16:07:03 +0000 (16:07 +0000)
2007-06-06  Emmanuele Bassi  <ebassi@gnome.org>

* gtk/gtkfilechooserdefault.c:
(get_file_info_finished), (shortcuts_insert_path),
(shortcuts_add_bookmarks), (shortcuts_add_current_folder): Factor
out the search shortcut, the recently used shortcut and the separator
from the shortcut selection combo. (#444734)

(recent_idle_load): Remove the idle source that lazily loads the
recently used files, if the GtkRecentManager returns an empty
list. (#443913)

svn path=/trunk/; revision=18063

ChangeLog
gtk/gtkfilechooserdefault.c

index 0f8d4cd36858dcdd9160ccf4e49f1f5efc8fc794..96aa053ef1e277e470be9c8c1615c485c4ebd294 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2007-06-06  Emmanuele Bassi  <ebassi@gnome.org>
+
+       * gtk/gtkfilechooserdefault.c:
+       (get_file_info_finished), (shortcuts_insert_path),
+       (shortcuts_add_bookmarks), (shortcuts_add_current_folder): Factor
+       out the search shortcut, the recently used shortcut and the separator
+       from the shortcut selection combo. (#444734)
+
+       (recent_idle_load): Remove the idle source that lazily loads the
+       recently used files, if the GtkRecentManager returns an empty
+       list. (#443913)
+
 2007-06-06  Ross Burton  <ross@openedhand.com>
 
        * gdk/x11/gdkspawn-x11.c:
index 9a9a4b27ed2fc3034698fa4694477172b6dac6b1..dd0cb692d333674c27ce0557a0c7edaf274c8e7b 100644 (file)
@@ -1633,8 +1633,8 @@ get_file_info_finished (GtkFileSystemHandle *handle,
   if (request->impl->shortcuts_combo_filter_model)
     gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (request->impl->shortcuts_combo_filter_model));
 
-  if (request->type == SHORTCUTS_CURRENT_FOLDER
-      && request->impl->save_folder_combo != NULL)
+  if (request->type == SHORTCUTS_CURRENT_FOLDER &&
+      request->impl->save_folder_combo != NULL)
     {
       /* The current folder is updated via _activate_iter(), don't
        * have save_folder_combo_changed_cb() call _activate_iter()
@@ -1643,7 +1643,14 @@ get_file_info_finished (GtkFileSystemHandle *handle,
       g_signal_handlers_block_by_func (request->impl->save_folder_combo,
                                       G_CALLBACK (save_folder_combo_changed_cb),
                                       request->impl);
-      gtk_combo_box_set_active (GTK_COMBO_BOX (request->impl->save_folder_combo), request->impl->has_search ? pos - 2 : pos);
+      
+      if (request->impl->has_search)
+        pos -= 1;
+
+      if (request->impl->has_recent)
+        pos -= 2;
+
+      gtk_combo_box_set_active (GTK_COMBO_BOX (request->impl->save_folder_combo), pos);
       g_signal_handlers_unblock_by_func (request->impl->save_folder_combo,
                                         G_CALLBACK (save_folder_combo_changed_cb),
                                         request->impl);
@@ -1845,11 +1852,18 @@ shortcuts_insert_path (GtkFileChooserDefault *impl,
        * again.
        */
       gint combo_pos = shortcuts_get_index (impl, SHORTCUTS_CURRENT_FOLDER);
+
+      if (impl->has_search)
+        combo_pos -= 1;
+
+      if (impl->has_recent)
+        combo_pos -= 2;
+      
       g_signal_handlers_block_by_func (impl->save_folder_combo,
                                       G_CALLBACK (save_folder_combo_changed_cb),
                                       impl);
-      gtk_combo_box_set_active (GTK_COMBO_BOX (impl->save_folder_combo), 
-                               impl->has_search ? combo_pos - 2 : combo_pos);
+      
+      gtk_combo_box_set_active (GTK_COMBO_BOX (impl->save_folder_combo), combo_pos);
       g_signal_handlers_unblock_by_func (impl->save_folder_combo,
                                         G_CALLBACK (save_folder_combo_changed_cb),
                                         impl);
@@ -2255,8 +2269,16 @@ shortcuts_add_bookmarks (GtkFileChooserDefault *impl)
 
       pos = shortcut_find_position (impl, combo_selected);
       if (pos != -1)
-       gtk_combo_box_set_active (GTK_COMBO_BOX (impl->save_folder_combo),
-                                 impl->has_search ? pos - 2 : pos);
+        {
+          if (impl->has_search)
+            pos -= 1;
+
+          if (impl->has_recent)
+            pos -= 2;
+
+         gtk_combo_box_set_active (GTK_COMBO_BOX (impl->save_folder_combo), pos);
+        }
+
       gtk_file_path_free (combo_selected);
     }
   
@@ -2314,8 +2336,15 @@ shortcuts_add_current_folder (GtkFileChooserDefault *impl)
        gtk_file_path_free (base_path);
     }
   else if (impl->save_folder_combo != NULL)
-    gtk_combo_box_set_active (GTK_COMBO_BOX (impl->save_folder_combo), 
-                             impl->has_search ? pos - 2 : pos);
+    {
+      if (impl->has_search)
+        pos -= 1;
+
+      if (impl->has_recent)
+        pos -= 2; /* + separator */
+
+      gtk_combo_box_set_active (GTK_COMBO_BOX (impl->save_folder_combo), pos);
+    }
 }
 
 /* Updates the current folder row in the shortcuts model */
@@ -4735,7 +4764,7 @@ shortcuts_combo_filter_func (GtkTreeModel *model,
           if (idx == indices[0])
             retval = FALSE;
         }
-    }
+     }
 
   gtk_tree_path_free (tree_path);
 
@@ -9772,6 +9801,9 @@ recent_idle_load (gpointer data)
   if (!load_data->items)
     {
       load_data->items = gtk_recent_manager_get_items (impl->recent_manager);
+      if (!load_data->items)
+        return FALSE;
+
       load_data->n_items = g_list_length (load_data->items);
       load_data->n_loaded_items = 0;